package behaviour.state;

/**
 * 状态模式
 * 对象的行为依赖于它的状态（属性），并且可以根据它的状态改变而改变它的相关行为。
 * <p>
 * 何时使用：代码中包含大量与对象状态有关的条件语句。
 * 如何解决：将各种具体的状态类抽象出来
 *
 * @author yeyangtao created at 2020/7/7 16:07
 */
public class StateDemo {
    public static void main(String[] args) {
        Context context = new Context();
        StartState startState = new StartState();
        startState.doAction(context);

        System.out.println(context.getState().toString());

        StopState stopState = new StopState();
        stopState.doAction(context);
        System.out.println(context.getState().toString());
    }
}
